package com.newjiabo.common.core.domain.entity;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.newjiabo.common.annotation.Excel;
import com.newjiabo.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 小程序会员对象 ski_member
 *
 * @author CaoMengHui
 * @date 2023-09-14
 */
@ApiModel(value = "小程序会员对象")
public class SkiMember extends BaseEntity {

    /**
     * ID
     */
    private String id;

    /**
     * 删除标志 true/false 删除/未删除
     */
    private Boolean delFlag;

    /**
     * 会员生日
     */
    @ApiModelProperty(value = "会员生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会员生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 会员状态
     */
    @ApiModelProperty(value = "会员状态")
    @Excel(name = "会员状态")
    private Integer disabled;

    /**
     * 会员头像
     */
    @ApiModelProperty(value = "会员头像")
    @Excel(name = "会员头像")
    private String face;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    @Excel(name = "手机号码")
    private String mobile;

    /**
     * 会员昵称
     */
    @ApiModelProperty(value = "会员昵称")
    @Excel(name = "会员昵称")
    private String nickName;

    /**
     * 会员密码
     */
    @ApiModelProperty(value = "会员密码")
    @Excel(name = "会员密码")
    private String password;

    /**
     * 会员性别
     */
    @ApiModelProperty(value = "会员性别")
    @Excel(name = "会员性别")
    private Integer sex;

    /**
     * 会员用户名
     */
    @ApiModelProperty(value = "")
    @Excel(name = "会员用户名")
    private String username;

    /**
     * 客户端
     */
    @ApiModelProperty(value = "客户端")
    @Excel(name = "客户端")
    private String clientEnum;

    /**
     * 最后一次登录时间
     */
    @ApiModelProperty(value = "最后一次登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginDate;

    /**
     * 摄影师id
     */
    @ApiModelProperty(value = "摄影师id")
    private String cameramanId;

    /**
     * 是否是摄影师
     */
    @ApiModelProperty(value = "是否是摄影师")
    private Boolean haveCameraman;

    public SkiMember(String username, String password, String avatar, String nickname, Integer sex, String phone, Boolean haveCameraman) {
        this.username = username;
        this.password = password;
        this.mobile = phone;
        this.nickName = nickname;
        this.face = avatar;
        this.sex = sex;
        this.haveCameraman = haveCameraman;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Boolean getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Boolean delFlag) {
        this.delFlag = delFlag;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setDisabled(Integer disabled) {
        this.disabled = disabled;
    }

    public Integer getDisabled() {
        return disabled;
    }

    public void setFace(String face) {
        this.face = face;
    }

    public String getFace() {
        return face;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getMobile() {
        return mobile;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsername() {
        return username;
    }

    public void setClientEnum(String clientEnum) {
        this.clientEnum = clientEnum;
    }

    public String getClientEnum() {
        return clientEnum;
    }

    public void setLastLoginDate(Date lastLoginDate) {
        this.lastLoginDate = lastLoginDate;
    }

    public Date getLastLoginDate() {
        return lastLoginDate;
    }

    public String getCameramanId() {
        return cameramanId;
    }

    public void setCameramanId(String cameramanId) {
        this.cameramanId = cameramanId;
    }

    public Boolean getHaveCameraman() {
        return haveCameraman;
    }

    public void setHaveCameraman(Boolean haveCameraman) {
        this.haveCameraman = haveCameraman;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("delFlag", getDelFlag())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("birthday", getBirthday())
                .append("disabled", getDisabled())
                .append("face", getFace())
                .append("mobile", getMobile())
                .append("nickName", getNickName())
                .append("password", getPassword())
                .append("sex", getSex())
                .append("username", getUsername())
                .append("clientEnum", getClientEnum())
                .append("lastLoginDate", getLastLoginDate())
                .toString();
    }
}
